package com.heima.article.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.heima.model.article.dtos.ArticleCommentDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.article.vos.ArticleCommnetVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Mapper
public interface ApArticleMapper extends BaseMapper<ApArticle> {

    /**
     * 加载文章列表
     * @param dto
     * @param type 1: 加载更多 2: 加载最新
     * @return
     */
    public List<ApArticle> loadArticleList(@Param("dto") ArticleHomeDto dto,
                                           @Param("type") Short type);

    /**
     * 查询前五天的文章列表
     * @param dayParam 时间点
     * @return
     */
    public List<ApArticle> findArticleListByLast5days(@Param("dayParam") Date dayParam);

    /**
     * 图文统计查询时间范围内文章的点赞和收藏数据
     * @param wmUserId
     * @param beginDate
     * @param endDate
     * @return
     */
    //TODO @MapKey is required ???
    public Map queryLikesAndConllections(@Param("wmUserId") Integer wmUserId,
             @Param("beginDate") Date beginDate,
             @Param("endDate")  Date endDate);

    List<ArticleCommnetVo> findNewsComments(@Param("dto") ArticleCommentDto dto);

    /**
     * 查询文章数量
     * @param dto
     * @return
     */
    int findNewsCommentsCount(@Param("dto")  ArticleCommentDto dto);
}